package Day21.superMethodReference;

/**
 * @version 1.0
 * @BelongsProject:IntelliJ IDEA
 * @BelongsPackage:Day21.superMethodReference
 * @Author:hyhWTX
 * @ClassName:Man
 * @CreateTime:2022年-10月-22日 11:15
 * @Description: TODO (一句话描述以下该类的功能)
 */
public class Man extends Human{
    @Override
    public void sayHello() {
        System.out.println("Hello!，我是Man类！");
    }
    /**
    * @Author HYH
    * @Description //定义一个方法参数传递Greetable接口
    * @Date 11:20 2022/10/22
    * @Param * @param g
    * @return * @return void
    **/

    public void method(Greetable g){
        g.greet();
    }
    /**
    * @Author HYH
    * @Description //调用method方法，方法参数是一个Greetable函数式接口，所以可以传递Lambda
    * @Date 11:19 2022/10/22
    * @Param
    * @return * @return void
    **/
    public void show(){
//        method(()->{
//            //创建父类Human对象
//            Human h = new Human();
//            //调用父类的sayHello方法
//            h.sayHello();
//        });
        //因为存在自父类关系，所以存在一个关键字super，代表父类，我们可以直接使用super调用父类的成员方法
       /* method(()->{
            super.sayHello();
        });*/
        //使用super引用类的成员方法，super已经存在，父类的方法也存在，可以直接使用super引用父类的成员方法
        method(super::sayHello);
    }


    public static void main(String[] args) {
        //创建一个method方法
        new Man().show();
    }
}
